
_InitMain:

;Temp control bis.c,61 :: 		void InitMain() {
;Temp control bis.c,63 :: 		ANSEL  = 0;                         // Configure AN pins as digital
	CLRF       ANSEL+0
;Temp control bis.c,64 :: 		ANSELH = 0;
	CLRF       ANSELH+0
;Temp control bis.c,65 :: 		C1ON_bit = 0;                       // Disable comparators
	BCF        C1ON_bit+0, 7
;Temp control bis.c,66 :: 		C2ON_bit = 0;
	BCF        C2ON_bit+0, 7
;Temp control bis.c,67 :: 		Lcd_Init();
	CALL       _Lcd_Init+0
;Temp control bis.c,68 :: 		LCD_Cmd(_LCD_CURSOR_OFF);           // send command to LCD (cursor off)
	MOVLW      12
	MOVWF      FARG_Lcd_Cmd_out_char+0
	CALL       _Lcd_Cmd+0
;Temp control bis.c,69 :: 		LCD_Cmd(_LCD_CLEAR);                // send command  to LCD (clear LCD)
	MOVLW      1
	MOVWF      FARG_Lcd_Cmd_out_char+0
	CALL       _Lcd_Cmd+0
;Temp control bis.c,71 :: 		TRISE0_bit = 1;                                // set RE0 pin as input
	BSF        TRISE0_bit+0, 0
;Temp control bis.c,72 :: 		TRISE1_bit = 1;                                // set RE1 pin as input
	BSF        TRISE1_bit+0, 1
;Temp control bis.c,73 :: 		oldstate1 = 0;
	BCF        _oldstate1+0, BitPos(_oldstate1+0)
;Temp control bis.c,74 :: 		oldstate2 = 0;
	BCF        _oldstate2+0, BitPos(_oldstate2+0)
;Temp control bis.c,77 :: 		T1CON = 1;                                     // Timer1 settings
	MOVLW      1
	MOVWF      T1CON+0
;Temp control bis.c,78 :: 		TMR1IF_bit = 0;                                // Clear TMR1IF
	BCF        TMR1IF_bit+0, 0
;Temp control bis.c,79 :: 		TMR1H = 0x85;
	MOVLW      133
	MOVWF      TMR1H+0
;Temp control bis.c,80 :: 		TMR1L = 0xEE;                                  // TRM1 = 34286
	MOVLW      238
	MOVWF      TMR1L+0
;Temp control bis.c,81 :: 		TMR1IE_bit = 1;                                // Enable Timer1 interrupt
	BSF        TMR1IE_bit+0, 0
;Temp control bis.c,82 :: 		INTCON = 0xC0;                                 // Set GIE, PEIE
	MOVLW      192
	MOVWF      INTCON+0
;Temp control bis.c,83 :: 		}
	RETURN
; end of _InitMain

_Check_DeltaT:

;Temp control bis.c,85 :: 		void Check_DeltaT() {                            // compare Set_temp value vs real read value
;Temp control bis.c,88 :: 		DeltaT = (Set_temp*2-temp2write);
	MOVF       _Set_temp+0, 0
	MOVWF      R0+0
	RLF        R0+0, 1
	BCF        R0+0, 0
	MOVF       Check_DeltaT_temp2write_L0+0, 0
	SUBWF      R0+0, 0
	MOVWF      R1+0
;Temp control bis.c,90 :: 		if (DeltaT > 0) {                          // Detect difference
	MOVLW      128
	XORLW      0
	MOVWF      R0+0
	MOVLW      128
	XORWF      R1+0, 0
	SUBWF      R0+0, 0
	BTFSC      STATUS+0, 0
	GOTO       L_Check_DeltaT0
;Temp control bis.c,91 :: 		Output_text = "ON ";
	MOVLW      ?lstr4_Temp_32control_32bis+0
	MOVWF      _Output_text+0
;Temp control bis.c,92 :: 		}
	GOTO       L_Check_DeltaT1
L_Check_DeltaT0:
;Temp control bis.c,94 :: 		Output_text = "OFF";
	MOVLW      ?lstr5_Temp_32control_32bis+0
	MOVWF      _Output_text+0
L_Check_DeltaT1:
;Temp control bis.c,95 :: 		LCD_Out(2,1,Output_text);                  // Print string a on LCD, 2st row, 1st column
	MOVLW      2
	MOVWF      FARG_Lcd_Out_row+0
	MOVLW      1
	MOVWF      FARG_Lcd_Out_column+0
	MOVF       _Output_text+0, 0
	MOVWF      FARG_Lcd_Out_text+0
	CALL       _Lcd_Out+0
;Temp control bis.c,96 :: 		}
	RETURN
; end of _Check_DeltaT

_Display_Value:

;Temp control bis.c,98 :: 		void Display_Value(unsigned short s) {
;Temp control bis.c,100 :: 		ch_temp = s;
	MOVF       FARG_Display_Value_s+0, 0
	MOVWF      Display_Value_ch_temp_L0+0
;Temp control bis.c,103 :: 		if (ch_temp/100)
	MOVLW      100
	MOVWF      R4+0
	MOVF       FARG_Display_Value_s+0, 0
	MOVWF      R0+0
	CALL       _Div_8x8_U+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_Display_Value2
;Temp control bis.c,104 :: 		St_text[0] = ch_temp/100  + 48;
	MOVF       _St_text+0, 0
	MOVWF      FLOC__Display_Value+0
	MOVLW      100
	MOVWF      R4+0
	MOVF       Display_Value_ch_temp_L0+0, 0
	MOVWF      R0+0
	CALL       _Div_8x8_U+0
	MOVLW      48
	ADDWF      R0+0, 1
	MOVF       FLOC__Display_Value+0, 0
	MOVWF      FSR
	MOVF       R0+0, 0
	MOVWF      INDF+0
	GOTO       L_Display_Value3
L_Display_Value2:
;Temp control bis.c,106 :: 		St_text[0] = '0';
	MOVF       _St_text+0, 0
	MOVWF      FSR
	MOVLW      48
	MOVWF      INDF+0
L_Display_Value3:
;Temp control bis.c,108 :: 		St_text[1] = (ch_temp/10)%10 + 48;     // Extract tens digit
	INCF       _St_text+0, 0
	MOVWF      FLOC__Display_Value+0
	MOVLW      10
	MOVWF      R4+0
	MOVF       Display_Value_ch_temp_L0+0, 0
	MOVWF      R0+0
	CALL       _Div_8x8_U+0
	MOVLW      10
	MOVWF      R4+0
	CALL       _Div_8x8_U+0
	MOVF       R8+0, 0
	MOVWF      R0+0
	MOVLW      48
	ADDWF      R0+0, 1
	MOVF       FLOC__Display_Value+0, 0
	MOVWF      FSR
	MOVF       R0+0, 0
	MOVWF      INDF+0
;Temp control bis.c,109 :: 		St_text[2] =  ch_temp%10     + 48;     // Extract ones digit
	MOVLW      2
	ADDWF      _St_text+0, 0
	MOVWF      FLOC__Display_Value+0
	MOVLW      10
	MOVWF      R4+0
	MOVF       Display_Value_ch_temp_L0+0, 0
	MOVWF      R0+0
	CALL       _Div_8x8_U+0
	MOVF       R8+0, 0
	MOVWF      R0+0
	MOVLW      48
	ADDWF      R0+0, 1
	MOVF       FLOC__Display_Value+0, 0
	MOVWF      FSR
	MOVF       R0+0, 0
	MOVWF      INDF+0
;Temp control bis.c,110 :: 		LCD_Out(1, 8, St_text);                  // Print string a on LCD, 1st row, 8rd column
	MOVLW      1
	MOVWF      FARG_Lcd_Out_row+0
	MOVLW      8
	MOVWF      FARG_Lcd_Out_column+0
	MOVF       _St_text+0, 0
	MOVWF      FARG_Lcd_Out_text+0
	CALL       _Lcd_Out+0
;Temp control bis.c,111 :: 		}
	RETURN
; end of _Display_Value

_Check_Button:

;Temp control bis.c,113 :: 		void Check_Button() {
;Temp control bis.c,114 :: 		if (RA0_bit) {                        // Button on RA0 pressed
	BTFSS      RA0_bit+0, 0
	GOTO       L_Check_Button4
;Temp control bis.c,115 :: 		Delay_ms(40);
	MOVLW      104
	MOVWF      R12+0
	MOVLW      228
	MOVWF      R13+0
L_Check_Button5:
	DECFSZ     R13+0, 1
	GOTO       L_Check_Button5
	DECFSZ     R12+0, 1
	GOTO       L_Check_Button5
	NOP
;Temp control bis.c,116 :: 		Set_temp++;                       // Increment Set_temp
	INCF       _Set_temp+0, 1
;Temp control bis.c,117 :: 		Display_Value(Set_temp);           // Update display of Set_temp
	MOVF       _Set_temp+0, 0
	MOVWF      FARG_Display_Value_s+0
	CALL       _Display_Value+0
;Temp control bis.c,118 :: 		}
L_Check_Button4:
;Temp control bis.c,120 :: 		if (RA1_bit) {                      // Button on RA1 pressed
	BTFSS      RA1_bit+0, 1
	GOTO       L_Check_Button6
;Temp control bis.c,121 :: 		Delay_ms(40);
	MOVLW      104
	MOVWF      R12+0
	MOVLW      228
	MOVWF      R13+0
L_Check_Button7:
	DECFSZ     R13+0, 1
	GOTO       L_Check_Button7
	DECFSZ     R12+0, 1
	GOTO       L_Check_Button7
	NOP
;Temp control bis.c,122 :: 		Set_temp--;                       // Decrement Set_temp
	DECF       _Set_temp+0, 1
;Temp control bis.c,123 :: 		Display_Value(Set_temp);           // Update display of Set_temp
	MOVF       _Set_temp+0, 0
	MOVWF      FARG_Display_Value_s+0
	CALL       _Display_Value+0
;Temp control bis.c,124 :: 		}
L_Check_Button6:
;Temp control bis.c,126 :: 		}
	RETURN
; end of _Check_Button

_Display_Temperature:

;Temp control bis.c,128 :: 		void Display_Temperature(unsigned int temp2write) {
;Temp control bis.c,134 :: 		if (temp2write & 0x8000) {
	BTFSS      FARG_Display_Temperature_temp2write+1, 7
	GOTO       L_Display_Temperature8
;Temp control bis.c,135 :: 		text2[0] = '-';
	MOVF       _text2+0, 0
	MOVWF      FSR
	MOVLW      45
	MOVWF      INDF+0
;Temp control bis.c,136 :: 		temp2write = ~temp2write + 1;
	COMF       FARG_Display_Temperature_temp2write+0, 1
	COMF       FARG_Display_Temperature_temp2write+1, 1
	INCF       FARG_Display_Temperature_temp2write+0, 1
	BTFSC      STATUS+0, 2
	INCF       FARG_Display_Temperature_temp2write+1, 1
;Temp control bis.c,137 :: 		}
L_Display_Temperature8:
;Temp control bis.c,140 :: 		temp_whole = temp2write >> RES_SHIFT ;
	MOVF       FARG_Display_Temperature_temp2write+0, 0
	MOVWF      R0+0
	MOVF       FARG_Display_Temperature_temp2write+1, 0
	MOVWF      R0+1
	RRF        R0+1, 1
	RRF        R0+0, 1
	BCF        R0+1, 7
	MOVF       R0+0, 0
	MOVWF      Display_Temperature_temp_whole_L0+0
;Temp control bis.c,143 :: 		if (temp_whole/100)
	MOVLW      100
	MOVWF      R4+0
	CALL       _Div_8x8_U+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_Display_Temperature9
;Temp control bis.c,144 :: 		text2[0] = temp_whole/100  + 48;
	MOVF       _text2+0, 0
	MOVWF      FLOC__Display_Temperature+0
	MOVLW      100
	MOVWF      R4+0
	MOVF       Display_Temperature_temp_whole_L0+0, 0
	MOVWF      R0+0
	CALL       _Div_8x8_U+0
	MOVLW      48
	ADDWF      R0+0, 1
	MOVF       FLOC__Display_Temperature+0, 0
	MOVWF      FSR
	MOVF       R0+0, 0
	MOVWF      INDF+0
	GOTO       L_Display_Temperature10
L_Display_Temperature9:
;Temp control bis.c,146 :: 		text2[0] = '0';
	MOVF       _text2+0, 0
	MOVWF      FSR
	MOVLW      48
	MOVWF      INDF+0
L_Display_Temperature10:
;Temp control bis.c,148 :: 		text2[1] = (temp_whole/10)%10 + 48;             // Extract tens digit
	INCF       _text2+0, 0
	MOVWF      FLOC__Display_Temperature+0
	MOVLW      10
	MOVWF      R4+0
	MOVF       Display_Temperature_temp_whole_L0+0, 0
	MOVWF      R0+0
	CALL       _Div_8x8_U+0
	MOVLW      10
	MOVWF      R4+0
	CALL       _Div_8x8_U+0
	MOVF       R8+0, 0
	MOVWF      R0+0
	MOVLW      48
	ADDWF      R0+0, 1
	MOVF       FLOC__Display_Temperature+0, 0
	MOVWF      FSR
	MOVF       R0+0, 0
	MOVWF      INDF+0
;Temp control bis.c,149 :: 		text2[2] =  temp_whole%10     + 48;             // Extract ones digit
	MOVLW      2
	ADDWF      _text2+0, 0
	MOVWF      FLOC__Display_Temperature+0
	MOVLW      10
	MOVWF      R4+0
	MOVF       Display_Temperature_temp_whole_L0+0, 0
	MOVWF      R0+0
	CALL       _Div_8x8_U+0
	MOVF       R8+0, 0
	MOVWF      R0+0
	MOVLW      48
	ADDWF      R0+0, 1
	MOVF       FLOC__Display_Temperature+0, 0
	MOVWF      FSR
	MOVF       R0+0, 0
	MOVWF      INDF+0
;Temp control bis.c,152 :: 		temp_fraction  = temp2write << (4-RES_SHIFT);
	MOVF       FARG_Display_Temperature_temp2write+0, 0
	MOVWF      R0+0
	MOVF       FARG_Display_Temperature_temp2write+1, 0
	MOVWF      R0+1
	RLF        R0+0, 1
	RLF        R0+1, 1
	BCF        R0+0, 0
	RLF        R0+0, 1
	RLF        R0+1, 1
	BCF        R0+0, 0
	RLF        R0+0, 1
	RLF        R0+1, 1
	BCF        R0+0, 0
	MOVF       R0+0, 0
	MOVWF      Display_Temperature_temp_fraction_L0+0
	MOVF       R0+1, 0
	MOVWF      Display_Temperature_temp_fraction_L0+1
;Temp control bis.c,153 :: 		temp_fraction &= 0x000F;
	MOVLW      15
	ANDWF      R0+0, 1
	MOVLW      0
	ANDWF      R0+1, 1
	MOVF       R0+0, 0
	MOVWF      Display_Temperature_temp_fraction_L0+0
	MOVF       R0+1, 0
	MOVWF      Display_Temperature_temp_fraction_L0+1
;Temp control bis.c,154 :: 		temp_fraction *= 625;
	MOVLW      113
	MOVWF      R4+0
	MOVLW      2
	MOVWF      R4+1
	CALL       _Mul_16x16_U+0
	MOVF       R0+0, 0
	MOVWF      Display_Temperature_temp_fraction_L0+0
	MOVF       R0+1, 0
	MOVWF      Display_Temperature_temp_fraction_L0+1
;Temp control bis.c,157 :: 		text2[4] =  temp_fraction/1000    + 48;         // Extract thousands digit
	MOVLW      4
	ADDWF      _text2+0, 0
	MOVWF      FLOC__Display_Temperature+0
	MOVLW      232
	MOVWF      R4+0
	MOVLW      3
	MOVWF      R4+1
	CALL       _Div_16x16_U+0
	MOVLW      48
	ADDWF      R0+0, 1
	MOVF       FLOC__Display_Temperature+0, 0
	MOVWF      FSR
	MOVF       R0+0, 0
	MOVWF      INDF+0
;Temp control bis.c,158 :: 		text2[5] = (temp_fraction/100)%10 + 48;         // Extract hundreds digit
	MOVLW      5
	ADDWF      _text2+0, 0
	MOVWF      FLOC__Display_Temperature+0
	MOVLW      100
	MOVWF      R4+0
	MOVLW      0
	MOVWF      R4+1
	MOVF       Display_Temperature_temp_fraction_L0+0, 0
	MOVWF      R0+0
	MOVF       Display_Temperature_temp_fraction_L0+1, 0
	MOVWF      R0+1
	CALL       _Div_16x16_U+0
	MOVLW      10
	MOVWF      R4+0
	MOVLW      0
	MOVWF      R4+1
	CALL       _Div_16x16_U+0
	MOVF       R8+0, 0
	MOVWF      R0+0
	MOVF       R8+1, 0
	MOVWF      R0+1
	MOVLW      48
	ADDWF      R0+0, 1
	MOVF       FLOC__Display_Temperature+0, 0
	MOVWF      FSR
	MOVF       R0+0, 0
	MOVWF      INDF+0
;Temp control bis.c,163 :: 		Lcd_Out(2, 8, text2);
	MOVLW      2
	MOVWF      FARG_Lcd_Out_row+0
	MOVLW      8
	MOVWF      FARG_Lcd_Out_column+0
	MOVF       _text2+0, 0
	MOVWF      FARG_Lcd_Out_text+0
	CALL       _Lcd_Out+0
;Temp control bis.c,164 :: 		}
	RETURN
; end of _Display_Temperature

_interrupt:
	MOVWF      R15+0
	SWAPF      STATUS+0, 0
	CLRF       STATUS+0
	MOVWF      ___saveSTATUS+0
	MOVF       PCLATH+0, 0
	MOVWF      ___savePCLATH+0
	CLRF       PCLATH+0

;Temp control bis.c,166 :: 		void interrupt() { // modify the Set_temp value
;Temp control bis.c,168 :: 		if(TMR1IF_bit == 1) {                                   //look at the overflow bit
	BTFSS      TMR1IF_bit+0, 0
	GOTO       L_interrupt11
;Temp control bis.c,169 :: 		TMR1IF_bit = 0;                                     // Update flag
	BCF        TMR1IF_bit+0, 0
;Temp control bis.c,172 :: 		if (Button(&PORTE, 0, 1, 1)){                       // Detect logical one (button is pushed)
	MOVLW      PORTE+0
	MOVWF      FARG_Button_port+0
	CLRF       FARG_Button_pin+0
	MOVLW      1
	MOVWF      FARG_Button_time_ms+0
	MOVLW      1
	MOVWF      FARG_Button_active_state+0
	CALL       _Button+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt12
;Temp control bis.c,173 :: 		oldstate1 = 1;                                   // Update flag
	BSF        _oldstate1+0, BitPos(_oldstate1+0)
;Temp control bis.c,174 :: 		Delay_ms(250);
	MOVLW      3
	MOVWF      R11+0
	MOVLW      138
	MOVWF      R12+0
	MOVLW      85
	MOVWF      R13+0
L_interrupt13:
	DECFSZ     R13+0, 1
	GOTO       L_interrupt13
	DECFSZ     R12+0, 1
	GOTO       L_interrupt13
	DECFSZ     R11+0, 1
	GOTO       L_interrupt13
	NOP
	NOP
;Temp control bis.c,175 :: 		if (oldstate1 && Button(&PORTE, 0, 1, 1)) {      // Continuous increasing
	BTFSS      _oldstate1+0, BitPos(_oldstate1+0)
	GOTO       L_interrupt16
	MOVLW      PORTE+0
	MOVWF      FARG_Button_port+0
	CLRF       FARG_Button_pin+0
	MOVLW      1
	MOVWF      FARG_Button_time_ms+0
	MOVLW      1
	MOVWF      FARG_Button_active_state+0
	CALL       _Button+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt16
L__interrupt47:
;Temp control bis.c,176 :: 		char j=0;
	CLRF       interrupt_j_L3+0
;Temp control bis.c,177 :: 		do {
L_interrupt17:
;Temp control bis.c,178 :: 		j++;
	INCF       interrupt_j_L3+0, 1
;Temp control bis.c,179 :: 		Set_temp++;
	INCF       _Set_temp+0, 1
;Temp control bis.c,181 :: 		Delay_ms(30);
	MOVLW      78
	MOVWF      R12+0
	MOVLW      235
	MOVWF      R13+0
L_interrupt20:
	DECFSZ     R13+0, 1
	GOTO       L_interrupt20
	DECFSZ     R12+0, 1
	GOTO       L_interrupt20
;Temp control bis.c,182 :: 		} while (Button(&PORTE, 0, 1, 1) && j<4);
	MOVLW      PORTE+0
	MOVWF      FARG_Button_port+0
	CLRF       FARG_Button_pin+0
	MOVLW      1
	MOVWF      FARG_Button_time_ms+0
	MOVLW      1
	MOVWF      FARG_Button_active_state+0
	CALL       _Button+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L__interrupt46
	MOVLW      4
	SUBWF      interrupt_j_L3+0, 0
	BTFSC      STATUS+0, 0
	GOTO       L__interrupt46
	GOTO       L_interrupt17
L__interrupt46:
;Temp control bis.c,183 :: 		}
L_interrupt16:
;Temp control bis.c,184 :: 		}
L_interrupt12:
;Temp control bis.c,185 :: 		if (oldstate1 && Button(&PORTE, 0, 1, 0)) {         // Detect one-to-zero transition (button is released)
	BTFSS      _oldstate1+0, BitPos(_oldstate1+0)
	GOTO       L_interrupt25
	MOVLW      PORTE+0
	MOVWF      FARG_Button_port+0
	CLRF       FARG_Button_pin+0
	MOVLW      1
	MOVWF      FARG_Button_time_ms+0
	CLRF       FARG_Button_active_state+0
	CALL       _Button+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt25
L__interrupt45:
;Temp control bis.c,186 :: 		Set_temp++;                                      // actions of the button RE0 -> Increase Set_temp
	INCF       _Set_temp+0, 1
;Temp control bis.c,187 :: 		oldstate1 = 0;                                   // Update flag
	BCF        _oldstate1+0, BitPos(_oldstate1+0)
;Temp control bis.c,188 :: 		}
L_interrupt25:
;Temp control bis.c,191 :: 		if (Button(&PORTE, 1, 1, 1)) {                      // Detect logical one (button is pushed)
	MOVLW      PORTE+0
	MOVWF      FARG_Button_port+0
	MOVLW      1
	MOVWF      FARG_Button_pin+0
	MOVLW      1
	MOVWF      FARG_Button_time_ms+0
	MOVLW      1
	MOVWF      FARG_Button_active_state+0
	CALL       _Button+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt26
;Temp control bis.c,192 :: 		oldstate2 = 1;                                   // Update flag
	BSF        _oldstate2+0, BitPos(_oldstate2+0)
;Temp control bis.c,193 :: 		Delay_ms(250);
	MOVLW      3
	MOVWF      R11+0
	MOVLW      138
	MOVWF      R12+0
	MOVLW      85
	MOVWF      R13+0
L_interrupt27:
	DECFSZ     R13+0, 1
	GOTO       L_interrupt27
	DECFSZ     R12+0, 1
	GOTO       L_interrupt27
	DECFSZ     R11+0, 1
	GOTO       L_interrupt27
	NOP
	NOP
;Temp control bis.c,194 :: 		if (oldstate2 && Button(&PORTE, 1, 1, 1)) {      // Continuous decreasing
	BTFSS      _oldstate2+0, BitPos(_oldstate2+0)
	GOTO       L_interrupt30
	MOVLW      PORTE+0
	MOVWF      FARG_Button_port+0
	MOVLW      1
	MOVWF      FARG_Button_pin+0
	MOVLW      1
	MOVWF      FARG_Button_time_ms+0
	MOVLW      1
	MOVWF      FARG_Button_active_state+0
	CALL       _Button+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt30
L__interrupt44:
;Temp control bis.c,196 :: 		char d=0; d++;
;Temp control bis.c,197 :: 		Set_temp--;
	DECF       _Set_temp+0, 1
;Temp control bis.c,199 :: 		Delay_ms(30);
	MOVLW      78
	MOVWF      R12+0
	MOVLW      235
	MOVWF      R13+0
L_interrupt34:
	DECFSZ     R13+0, 1
	GOTO       L_interrupt34
	DECFSZ     R12+0, 1
	GOTO       L_interrupt34
;Temp control bis.c,200 :: 		} while (Button(&PORTE, 1, 1, 1) && d<4);
	MOVLW      PORTE+0
	MOVWF      FARG_Button_port+0
	MOVLW      1
	MOVWF      FARG_Button_pin+0
	MOVLW      1
	MOVWF      FARG_Button_time_ms+0
	MOVLW      1
	MOVWF      FARG_Button_active_state+0
	CALL       _Button+0
;Temp control bis.c,201 :: 		}
L_interrupt30:
;Temp control bis.c,202 :: 		}
L_interrupt26:
;Temp control bis.c,203 :: 		if (oldstate2 && Button(&PORTE, 1, 1, 0)) {   // Detect one-to-zero transition (button is released)
	BTFSS      _oldstate2+0, BitPos(_oldstate2+0)
	GOTO       L_interrupt37
	MOVLW      PORTE+0
	MOVWF      FARG_Button_port+0
	MOVLW      1
	MOVWF      FARG_Button_pin+0
	MOVLW      1
	MOVWF      FARG_Button_time_ms+0
	CLRF       FARG_Button_active_state+0
	CALL       _Button+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt37
L__interrupt43:
;Temp control bis.c,204 :: 		Set_temp--;                               // actions of the button RE1 -> Decrease Set_temp
	DECF       _Set_temp+0, 1
;Temp control bis.c,205 :: 		oldstate2 = 0;                            // Update flag
	BCF        _oldstate2+0, BitPos(_oldstate2+0)
;Temp control bis.c,206 :: 		}
L_interrupt37:
;Temp control bis.c,207 :: 		}
L_interrupt11:
;Temp control bis.c,208 :: 		}
L__interrupt48:
	MOVF       ___savePCLATH+0, 0
	MOVWF      PCLATH+0
	SWAPF      ___saveSTATUS+0, 0
	MOVWF      STATUS+0
	SWAPF      R15+0, 1
	SWAPF      R15+0, 0
	RETFIE
; end of _interrupt

_main:

;Temp control bis.c,210 :: 		void main() {
;Temp control bis.c,211 :: 		InitMain();
	CALL       _InitMain+0
;Temp control bis.c,213 :: 		text1 = "Set:";                                        // Assign text to string
	MOVLW      ?lstr6_Temp_32control_32bis+0
	MOVWF      _text1+0
;Temp control bis.c,214 :: 		LCD_Out(1,1,text1);                                    // Print string a on LCD, 1st row, 1st column
	MOVLW      1
	MOVWF      FARG_Lcd_Out_row+0
	MOVLW      1
	MOVWF      FARG_Lcd_Out_column+0
	MOVF       _text1+0, 0
	MOVWF      FARG_Lcd_Out_text+0
	CALL       _Lcd_Out+0
;Temp control bis.c,217 :: 		Lcd_Chr(2,15,223);                                    // Different LCD displays have different char code for degree
	MOVLW      2
	MOVWF      FARG_Lcd_Chr_row+0
	MOVLW      15
	MOVWF      FARG_Lcd_Chr_column+0
	MOVLW      223
	MOVWF      FARG_Lcd_Chr_out_char+0
	CALL       _Lcd_Chr+0
;Temp control bis.c,219 :: 		Lcd_Chr(2,16,'C');
	MOVLW      2
	MOVWF      FARG_Lcd_Chr_row+0
	MOVLW      16
	MOVWF      FARG_Lcd_Chr_column+0
	MOVLW      67
	MOVWF      FARG_Lcd_Chr_out_char+0
	CALL       _Lcd_Chr+0
;Temp control bis.c,221 :: 		Lcd_Chr(1,15,223);                                    // Different LCD displays have different char code for degree
	MOVLW      1
	MOVWF      FARG_Lcd_Chr_row+0
	MOVLW      15
	MOVWF      FARG_Lcd_Chr_column+0
	MOVLW      223
	MOVWF      FARG_Lcd_Chr_out_char+0
	CALL       _Lcd_Chr+0
;Temp control bis.c,223 :: 		Lcd_Chr(1,16,'C');
	MOVLW      1
	MOVWF      FARG_Lcd_Chr_row+0
	MOVLW      16
	MOVWF      FARG_Lcd_Chr_column+0
	MOVLW      67
	MOVWF      FARG_Lcd_Chr_out_char+0
	CALL       _Lcd_Chr+0
;Temp control bis.c,226 :: 		do {
L_main38:
;Temp control bis.c,229 :: 		Display_Value(Set_temp);                         // Display of Set_temp value
	MOVF       _Set_temp+0, 0
	MOVWF      FARG_Display_Value_s+0
	CALL       _Display_Value+0
;Temp control bis.c,230 :: 		Check_Button();
	CALL       _Check_Button+0
;Temp control bis.c,231 :: 		Check_DeltaT();
	CALL       _Check_DeltaT+0
;Temp control bis.c,234 :: 		Ow_Reset(&PORTE, 2);                        // Onewire reset signal
	MOVLW      PORTE+0
	MOVWF      FARG_Ow_Reset_port+0
	MOVLW      2
	MOVWF      FARG_Ow_Reset_pin+0
	CALL       _Ow_Reset+0
;Temp control bis.c,235 :: 		Ow_Write(&PORTE, 2, 0xCC);                  // Issue command SKIP_ROM
	MOVLW      PORTE+0
	MOVWF      FARG_Ow_Write_port+0
	MOVLW      2
	MOVWF      FARG_Ow_Write_pin+0
	MOVLW      204
	MOVWF      FARG_Ow_Write_data_+0
	CALL       _Ow_Write+0
;Temp control bis.c,236 :: 		Ow_Write(&PORTE, 2, 0x44);                  // Issue command CONVERT_T
	MOVLW      PORTE+0
	MOVWF      FARG_Ow_Write_port+0
	MOVLW      2
	MOVWF      FARG_Ow_Write_pin+0
	MOVLW      68
	MOVWF      FARG_Ow_Write_data_+0
	CALL       _Ow_Write+0
;Temp control bis.c,237 :: 		Delay_us(120);
	MOVLW      79
	MOVWF      R13+0
L_main41:
	DECFSZ     R13+0, 1
	GOTO       L_main41
	NOP
	NOP
;Temp control bis.c,239 :: 		Ow_Reset(&PORTE, 2);
	MOVLW      PORTE+0
	MOVWF      FARG_Ow_Reset_port+0
	MOVLW      2
	MOVWF      FARG_Ow_Reset_pin+0
	CALL       _Ow_Reset+0
;Temp control bis.c,240 :: 		Ow_Write(&PORTE, 2, 0xCC);                  // Issue command SKIP_ROM
	MOVLW      PORTE+0
	MOVWF      FARG_Ow_Write_port+0
	MOVLW      2
	MOVWF      FARG_Ow_Write_pin+0
	MOVLW      204
	MOVWF      FARG_Ow_Write_data_+0
	CALL       _Ow_Write+0
;Temp control bis.c,241 :: 		Ow_Write(&PORTE, 2, 0xBE);                  // Issue command READ_SCRATCHPAD
	MOVLW      PORTE+0
	MOVWF      FARG_Ow_Write_port+0
	MOVLW      2
	MOVWF      FARG_Ow_Write_pin+0
	MOVLW      190
	MOVWF      FARG_Ow_Write_data_+0
	CALL       _Ow_Write+0
;Temp control bis.c,243 :: 		temp =  Ow_Read(&PORTE, 2);
	MOVLW      PORTE+0
	MOVWF      FARG_Ow_Read_port+0
	MOVLW      2
	MOVWF      FARG_Ow_Read_pin+0
	CALL       _Ow_Read+0
	MOVF       R0+0, 0
	MOVWF      _temp+0
	CLRF       _temp+1
;Temp control bis.c,244 :: 		temp = (Ow_Read(&PORTE, 2) << 8) + temp;
	MOVLW      PORTE+0
	MOVWF      FARG_Ow_Read_port+0
	MOVLW      2
	MOVWF      FARG_Ow_Read_pin+0
	CALL       _Ow_Read+0
	MOVF       R0+0, 0
	MOVWF      R2+1
	CLRF       R2+0
	MOVF       _temp+0, 0
	ADDWF      R2+0, 0
	MOVWF      R0+0
	MOVF       R2+1, 0
	BTFSC      STATUS+0, 0
	ADDLW      1
	ADDWF      _temp+1, 0
	MOVWF      R0+1
	MOVF       R0+0, 0
	MOVWF      _temp+0
	MOVF       R0+1, 0
	MOVWF      _temp+1
;Temp control bis.c,247 :: 		Display_Temperature(temp);
	MOVF       R0+0, 0
	MOVWF      FARG_Display_Temperature_temp2write+0
	MOVF       R0+1, 0
	MOVWF      FARG_Display_Temperature_temp2write+1
	CALL       _Display_Temperature+0
;Temp control bis.c,249 :: 		Delay_ms(500);
	MOVLW      6
	MOVWF      R11+0
	MOVLW      19
	MOVWF      R12+0
	MOVLW      173
	MOVWF      R13+0
L_main42:
	DECFSZ     R13+0, 1
	GOTO       L_main42
	DECFSZ     R12+0, 1
	GOTO       L_main42
	DECFSZ     R11+0, 1
	GOTO       L_main42
	NOP
	NOP
;Temp control bis.c,250 :: 		} while (1);
	GOTO       L_main38
;Temp control bis.c,251 :: 		}
	GOTO       $+0
; end of _main
